interface Config {
  /**
   * @description: 项目名称。zuoy生成的文件将默认使用此名称，除非在操作配置中单独指明名称。
   * @default: zuoy-project
   */
  projectName: string;
  /**
   * @description: 设置本地语言，用于程序识别当前输入的语种。
   * @default: zh
   */
  localLanguage: string;
  /**
   * @description: Z函数配置
   */
  Z: {
    /**
     * @description: 自定义z函数名称
     * @default: z
     */
    name: string;
  };
  /**
   * @description:  输出的多语言文件，code是语言代码，file是输出文件相对于根目录的路径，
   * @param {string} code: 语言代码
   * @param {string} file: 语言包文件相对路径
   * @default: [{code: 'zh', file: 'src/locales/zh-CN.json'}]
   */
  languages: {
    code: string;
    file: string;
  }[];
  /**
   * @description: 未启用翻译的其他语言默认填入的内容
   * @default: value => value
   * @param {string} value: 输入的内容
   * @param {string} targetCode: 目标语言代码
   */
  defaultContent: (value: string, targetCode: string) => string;
  /**
   * @description: 自定义key值
   * @param {string} value: 输入的内容
   * @default: value => value
   */
  formatKey: (value: string | number | boolean) => string;
  /**
   * @description: build配置
   */
  build: {
    /**
     * @description: build时扫描的目录(相对于根目录)
     */
    rootDir?: string;
    include?: RegExp[]; // 需要包含的文件路径RegExp
    exclude?: RegExp[]; // 需要排除的文件路径RegExp，比include优先级高
    outExcel?: boolean; // 是否自动导出excel文件，采用export.excel的配置
    cloud?: {
      // 配置了cloud时，outExcel失效
      namespaceUrl: string; // 知识库地址
      slug?: string; // 文档唯一名称
      accessToken: string; // 用于客户端 / API 访问你的私密数据，请注意保密，如有泄漏，请重置。
      title?: string; // 文档标题。未提供则使用projectName
    };
  };
  /**
   * @description: export配置
   */
  export: {
    excel: {
      saveDir: string; // excel 文件的生成目录（相对于项目根目录）
      name: string; // 生成 excel 的文件名称，未提供则使用projectName
    };
  };
}
